/**
 * 发送GET异步请求
 * @param {string} url 请求地址
 * @param {string} params 请求参数
 * @param {Object} headers 请求头
 * @param {string} dataType 返回数据类型
 * @returns promise
 */
function get(url,params={},headers={},dataType='json'){
    return new Promise((resolve,reject)=>{
        const xhr=new XMLHttpRequest
        xhr.onreadystatechange=()=>{
            if(xhr.readyState===4){
                if(xhr.status===200){
                        // let res=JSON.parse(xhr.responseText)
                        // console.log(res)
                        let res=xhr.responseText
                        switch(dataType){
                            case 'json':
                                res=JSON.parse(res)
                                break;
                            default:
                                break;
                        }
                        resolve(res)
                    }else{
                        // console.log('错误',xhr.status)
                        reject(xhr.status)
                    }
            }
        }
        let tempArr=[]
        for(let key in params){
            tempArr.push(`${key}=${params[key]}`)
        }
        xhr.open('get',`${url}?${tempArr.join('&')}`)
        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])
        }
        xhr.send(null)
    })      
}


/**
 * 发送POST异步请求
 * @param {string} url 请求地址
 * @param {string} params 请求参数
 * @param {Object} headers 请求头
 * @param {string} dataType 返回数据类型
 * @returns promise
 */
function post(url,params={},headers={},dataType='json'){
    return new Promise((resolve,reject)=>{
        const xhr=new XMLHttpRequest
        xhr.onreadystatechange=()=>{
            if(xhr.readyState===4){
                if(xhr.status===200){
                        // let res=JSON.parse(xhr.responseText)
                        // console.log(res)
                        let res=xhr.responseText
                        switch(dataType){
                            case 'json':
                                res=JSON.parse(res)
                                break;
                            default:
                                break;
                        }
                        resolve(res)
                    }else{
                        // console.log('错误',xhr.status)
                        reject(xhr.status)
                    }
            }
        }
        let tempArr=[]
        for(let key in params){
            tempArr.push(`${key}=${params[key]}`)
        }
        xhr.open('post',url)
        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])
        }
        xhr.send(`${tempArr.join('&')}`)
    })      
}